
;=================================================
; in order to create architectural layer you'd reveal:
;  1) entities
;  2) relations between entities
;  3) processes, entities are involved in
;

(defun is-r (lhs rhs)
 ()
 )

;=================================================
; defines relation
;
; relations could be:
;
; - binary:     A is B, A have C
; - unary:      not A
; - multiple:   A and B and C
; - attributed: A is kind-of B, not part-of C, is not A, have no C
;
(defmacro rel (rel-type &rest entities)
 `(dump "relation: ~a entities:" ,rel-type ,@entities)
 )

(defun relations (rel-arg-list)
 ;(dump "rel = ~a" rel-arg-list)
 ;()
 (dump "rel = ~a e = ~a" (car rel-arg-list) (cdr rel-arg-list))
 )

;=================================================
; defines a process
(defmacro process () 1554)

;=================================================
; here is the sample relation - main window is widget
;
;(rel (is main-window widget))

(defun test-erp ()
 (dump "test-erp")

 (relation '(is vector object))
 )

